home *** CD-ROM | disk | FTP | other *** search
- /*
- -- ANSI C code generated by :
- -- SmallEiffel The GNU Eiffel Compiler -- Release (- 0.82) --
- -- Copyright (C), 1994-98 - LORIA - UHP - CRIN - INRIA - FRANCE --
- -- Dominique COLNET and Suzanne COLLIN - colnet@loria.fr --
- -- http://www.loria.fr/SmallEiffel --
- */
- #include "short.h"
- void r306put_integer(T306* C,int a1){
- /*IF*/if ((((T306*)C))->_verbose/*0*/) {
- r830put_integer(((T830*)(oBC1std_output)),a1);
- /*[IRF3.6flush*/{T830* C1=((T830*)(oBC1std_output));
- fflush(stdout);
- }/*]*/
- }
- /*FI*/}
- void r306w_put_string(T0* a1){
- r441put_string(((T441*)(oBC1std_error)),a1);
- /*[IRF3.6flush*/{T441* C1=((T441*)(oBC1std_error));
- fflush(stderr);
- }/*]*/
- }
- void r306put_character(T306* C,char a1){
- /*IF*/if ((((T306*)C))->_verbose/*0*/) {
- /*[IRF3.6put_character*/{T830* C1=((T830*)(oBC1std_output));
- char b1=a1;
- putc(b1,((FILE*)(stdout)));
- }/*]*/
- /*[IRF3.6flush*/{T830* C1=((T830*)(oBC1std_output));
- fflush(stdout);
- }/*]*/
- }
- /*FI*/}
- void r306w_put_character(char a1){
- /*[IRF3.6put_character*/{T441* C1=((T441*)(oBC1std_error));
- char b1=a1;
- putc(b1,((FILE*)(stderr)));
- }/*]*/
- /*[IRF3.6flush*/{T441* C1=((T441*)(oBC1std_error));
- fflush(stderr);
- }/*]*/
- }
- void r306w_put_integer(int a1){
- r441put_integer(((T441*)(oBC1std_error)),a1);
- /*[IRF3.6flush*/{T441* C1=((T441*)(oBC1std_error));
- fflush(stderr);
- }/*]*/
- }
- T0* r368at(T368* C,T0* a1){
- T0* R=NULL;
- T0* _to_key=NULL;
- _to_key=X776to_key(a1);
- /*IF*/if (r199has(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),_to_key)) {
- R=r199at(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),_to_key);
- }
- /*FI*/return R;
- }
- /*No:RUN_CLASS.id*/
- T0* r368get_or_fatal_error(T368* C,T0* a1){
- T0* R=NULL;
- R=r368get_feature(C,a1);
- /*IF*/if ((R)==((void*)(NULL))) {
- r683add_position(X776start_position(a1));
- /*[IRF3.6append*/{T0* b1=((T0*)ms6_368);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=X776to_string(a1);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=((T0*)ms7_368);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- r683add_type((((T368*)C))->_current_type/*0*/,((T0*)ms67_470));
- r683print_as_fatal_error(((T683*)(oBC364eh)));
- }
- /*FI*/return R;
- }
- /*No:RUN_CLASS.fz_bad_assertion*/
- /*No:RUN_CLASS.running*/
- T0* r368runnable(T0* a1,T0* a2,T0* a3){
- T0* R=NULL;
- T0* _a=NULL;
- int _i=0;
- /*IF*/if (!(r608empty(((T608*)a1)))) {
- R=r608twin(((T608*)a1));
- _i=(((T608*)((T608*)R)))->_upper/*8*/;
- while (!((_i)==(0))) {
- r604push(((T604*)(oBC364small_eiffel)),a3);
- _a=r348to_runnable(((T348*)(r608item(((T608*)R),_i))),a2);
- /*IF*/if ((_a)==((void*)(NULL))) {
- r368error(r348start_position(((T348*)(r608item(((T608*)R),_i)))),((T0*)ms57_470));
- }
- else {
- /*[IRF3.6put*/{T608* C1=((T608*)R);
- T0* b1=_a;
- int b2=_i;
- ((((T608*)C1))->_storage/*0*/)[(b2)-((((T608*)C1))->_lower/*12*/)]=(b1);
- }/*]*/
- }
- /*FI*/r604pop(((T604*)(oBC364small_eiffel)));
- _i=(_i)-(1);
- }
- }
- /*FI*/return R;
- }
- void r368set_at_run_time(T368* C){
- int _i=0;
- T0* _rc=NULL;
- T0* _rcd=NULL;
- /*IF*/if (!((((T368*)C))->_at_run_time/*8*/)) {
- C->_at_run_time=1;
- C->_compile_to_c_done=0;
- r368add_running(C,(T0*)C);
- r604incr_magic_count(((T604*)(oBC364small_eiffel)));
- /*IF*/if (X291is_reference((((T368*)C))->_current_type/*0*/)) {
- _rcd=oBC604run_class_dictionary;
- _i=1;
- while (!((_i)>((((T250*)((T250*)_rcd)))->_count/*40*/))) {
- _rc=r250item(((T250*)_rcd),_i);
- /*IF*/if (r368is_a(C,_rc)) {
- r368add_running(((T368*)_rc),(T0*)C);
- }
- /*FI*/_i=(_i)+(1);
- }
- }
- /*FI*/}
- /*FI*/}
- int r368is_a(T368* C,T0* a1){
- int R=0;
- T0* _t2=NULL;
- T0* _t1=NULL;
- /*IF*/if ((a1)==((void*)(C))) {
- R=1;
- }
- else {
- _t1=(((T368*)C))->_current_type/*0*/;
- _t2=(((T368*)((T368*)a1)))->_current_type/*0*/;
- /*IF*/if ((X291is_basic_eiffel_expanded(_t1))&&(X291is_basic_eiffel_expanded(_t2))) {
- }
- else {
- R=X291is_a(_t1,_t2);
- /*IF*/if (!(R)) {
- /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
- /*]*/
- r51clear(((T51*)(oBC683positions)));
- /*]*/
- }
- /*FI*/}
- /*FI*/}
- /*FI*/return R;
- }
- /*No:RUN_CLASS.actuals_clients*/
- /*No:RUN_CLASS.at_run_time*/
- T0* r368get_rf(T368* C,T0* a1){
- T0* R=NULL;
- T0* _tfg=NULL;
- T0* _constraint=NULL;
- T0* _trt=NULL;
- T0* _wbc2=NULL;
- T0* _wbc=NULL;
- T0* _fn2=NULL;
- T0* _fn1=NULL;
- int _is_current=0;
- T0* _target=NULL;
- _target=/*X135*/((T0*)(((T121*)((T121*)a1)))->_target/*8*/);
- _trt=X662result_type(_target);
- _is_current=X662is_current(_target);
- _fn1=X135feature_name(a1);
- _wbc=r627base_class(((T627*)(X776start_position(_fn1))));
- /*IF*/if ((_is_current)||(X291is_like_current(_trt))) {
- _fn2=r605new_name_of(((T605*)(X291base_class(_trt))),_wbc,_fn1);
- /*IF*/if ((_fn2)!=((void*)(_fn1))) {
- r683add_position(X776start_position(_fn1));
- R=r368get_or_fatal_error(C,_fn2);
- /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
- /*]*/
- r51clear(((T51*)(oBC683positions)));
- /*]*/
- }
- else {
- R=r368get_or_fatal_error(C,_fn1);
- }
- /*FI*/}
- else if (X291is_formal_generic(_trt)) {
- _tfg=_trt;
- if(NULL!=(_tfg))switch(((T0*)_tfg)->id) {
- case 283:
- break;
- default:
- _tfg=NULL;
- };_constraint=r283constraint(((T283*)_tfg));
- /*IF*/if ((_constraint)==((void*)(NULL))) {
- R=r368get_or_fatal_error(C,_fn1);
- }
- else if (!(X291is_a(_trt,_constraint))) {
- r683print_as_error(((T683*)(oBC364eh)));
- r683add_position(X776start_position(X135feature_name(a1)));
- /*[IRF3.6append*/{T0* b1=((T0*)ms3_368);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- r683print_as_fatal_error(((T683*)(oBC364eh)));
- }
- else {
- _wbc2=r627base_class(((T627*)(X291start_position(_constraint))));
- /*IF*/if (((_wbc2)==((void*)(_wbc)))||(r605is_subclass_of(((T605*)_wbc),_wbc2))) {
- _fn2=r605new_name_of(((T605*)(X291base_class(_trt))),X291base_class(_constraint),_fn1);
- R=r368get_or_fatal_error(C,_fn2);
- }
- else {
- R=r368get_or_fatal_error(C,_fn1);
- }
- /*FI*/}
- /*FI*/}
- else {
- R=r368get_or_fatal_error(C,_fn1);
- }
- /*FI*/X496add_client(R,(T0*)C);
- /*IF*/if ((((/*(IRF4.9nb_errors*/(((T683*)((T683*)(oBC364eh))))->_nb_errors/*0*//*)*/)==(0))&&(!(_is_current)))&&(!(X496is_exported_in(R,(((T605*)((T605*)_wbc)))->_base_class_name/*24*/)))) {
- r683add_position(X496start_position(R));
- /*[IRF3.6append*/{T0* b1=((T0*)ms4_368);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=X776to_string(_fn1);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- r368error(X776start_position(X135feature_name(a1)),((T0*)ms5_368));
- }
- /*FI*/return R;
- }
- T0* r368get_feature(T368* C,T0* a1){
- T0* R=NULL;
- T0* _bc=NULL;
- T0* _fn_key=NULL;
- T0* _f=NULL;
- _fn_key=X776to_key(a1);
- /*IF*/if (r199has(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),_fn_key)) {
- R=r199at(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),_fn_key);
- }
- else {
- _bc=r368base_class(C);
- _f=r605look_up_for(((T605*)_bc),(T0*)C,a1);
- /*IF*/if ((_f)==((void*)(NULL))) {
- r368efnf(C,_bc,a1);
- }
- else {
- R=X359to_run_feature(_f,(((T368*)C))->_current_type/*0*/,a1);
- /*IF*/if ((R)!=((void*)(NULL))) {
- r368store_feature(C,R);
- }
- else {
- r368efnf(C,_bc,a1);
- }
- /*FI*/}
- /*FI*/}
- /*FI*/return R;
- }
- T0* r368class_with(T0* a1){
- T0* R=NULL;
- R=r604get_class(a1);
- return R;
- }
- void r368efnf(T368* C,T0* a1,T0* a2){
- /*[IRF3.6append*/{T0* b1=((T0*)ms9_368);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=X291run_time_mark((((T368*)C))->_current_type/*0*/);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=((T0*)ms10_368);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=X776to_string(a2);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=((T0*)ms11_368);
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- /*[IRF3.6append*/{T0* b1=(((T451*)((T451*)((((T605*)((T605*)a1)))->_base_class_name/*24*/))))->_to_string/*0*/;
- r7append(((T7*)(oBC683explanation)),b1);
- }/*]*/
- r368error(X776start_position(a2),((T0*)ms67_470));
- }
- void r368make(T368* C,T0* a1){
- int _i=0;
- T0* _r=NULL;
- T0* _rc=NULL;
- T0* _rcd=NULL;
- T0* _run_string=NULL;
- C->_compile_to_c_done=1;
- C->_current_type=a1;
- {T187*n=malloc(sizeof(*n));
- *n=M187;
- r187with_capacity(n,16);
- C->_actuals_clients=(T0*)n;
- }
- _run_string=X291run_time_mark(a1);
- C->_id=r410item(((T410*)(r368id_provider())),_run_string);
- /*IF*/if ((((T604*)((T604*)(oBC364small_eiffel))))->_is_ready/*0*/) {
- r368warning(NULL,((T0*)ms1_368));
- }
- /*FI*//*IF*/if (r250has(((T250*)(oBC604run_class_dictionary)),_run_string)) {
- r368warning(NULL,((T0*)ms2_368));
- }
- /*FI*/r250put(((T250*)(oBC604run_class_dictionary)),(T0*)C,_run_string);
- {T199*n=malloc(sizeof(*n));
- *n=M199;
- r199with_capacity(n,64);
- C->_feature_dictionary=(T0*)n;
- }
- r604incr_magic_count(((T604*)(oBC364small_eiffel)));
- /*IF*/if (X291is_expanded(a1)) {
- r368set_at_run_time(C);
- r605check_expanded_with(((T605*)(X291base_class(a1))),a1);
- }
- else {
- _rcd=oBC604run_class_dictionary;
- _i=1;
- while (!((_i)>((((T250*)((T250*)_rcd)))->_count/*40*/))) {
- _rc=r250item(((T250*)_rcd),_i);
- /*IF*/if ((((((T368*)((T368*)_rc)))->_at_run_time/*8*/)&&(X291is_reference((((T368*)((T368*)_rc)))->_current_type/*0*/)))&&(r368is_a(((T368*)_rc),(T0*)C))) {
- r368add_running(C,_rc);
- }
- /*FI*/_i=(_i)+(1);
- }
- }
- /*FI*//*IF*/if (r590invariant_check(((T590*)(oBC364run_control)))) {
- r608clear(((T608*)(oBC368ci_collector)));
- r605collect_invariant(((T605*)(r368base_class(C))),(T0*)C);
- _r=r368runnable(oBC368ci_collector,(((T368*)C))->_current_type/*0*/,NULL);
- /*IF*/if ((_r)!=((void*)(NULL))) {
- {T673*n=malloc(sizeof(*n));
- *n=M673;
- r673from_runnable(n,_r);
- C->_invariant_assertion=(T0*)n;
- }
- }
- /*FI*/}
- /*FI*/}
- /*No:RUN_CLASS.nb_errors*/
- void r368store_feature(T368* C,T0* a1){
- T0* _rf_key=NULL;
- _rf_key=X776to_key(/*X496*/((T0*)(((T808*)((T808*)a1)))->_name/*16*/));
- /*IF*/if (r199has(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),_rf_key)) {
- }
- else {
- r199put(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),a1,_rf_key);
- r604incr_magic_count(((T604*)(oBC364small_eiffel)));
- }
- /*FI*/}
- /*No:RUN_CLASS.compile_to_c_done*/
- T0*oBC368ci_collector=NULL;
- void r368add_running(T368* C,T0* a1){
- /*IF*/if (((((T368*)C))->_running/*12*/)==((void*)(NULL))) {
- C->_running=se_ma396(1,a1);
- }
- else {
- /*IF*/if (!(r396fast_has(((T396*)((((T368*)C))->_running/*12*/)),a1))) {
- r396add_last(((T396*)((((T368*)C))->_running/*12*/)),a1);
- }
- /*FI*/}
- /*FI*/}
- void r368add_client(T368* C,T0* a1){
- int _i=0;
- _i=r187fast_index_of(((T187*)((((T368*)C))->_actuals_clients/*28*/)),a1);
- /*IF*/if ((_i)>((((T187*)((T187*)((((T368*)C))->_actuals_clients/*28*/))))->_upper/*8*/)) {
- r187add_last(((T187*)((((T368*)C))->_actuals_clients/*28*/)),a1);
- }
- /*FI*/}
- T0* r368get_feature_with(T368* C,T0* a1){
- T0* R=NULL;
- T0* _sfn=NULL;
- /*IF*/if (r199has(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),a1)) {
- R=r199at(((T199*)((((T368*)C))->_feature_dictionary/*24*/)),a1);
- }
- else {
- {T446*n=malloc(sizeof(*n));
- *n=M446;
- r446make(n,a1,NULL);
- _sfn=(T0*)n;
- }
- R=r368get_feature(C,_sfn);
- }
- /*FI*/return R;
- }
- /*No:RUN_CLASS.collect_invariant*/
- T0* r368id_provider(void){
- if (fBC364id_provider==0){
- T0* R=NULL;
- fBC364id_provider=1;
- {T410*n=malloc(sizeof(*n));
- *n=M410;
- r410make(n);
- R=(T0*)n;
- }
- oBC364id_provider=R;}
- return oBC364id_provider;}
- /*No:RUN_CLASS.current_type*/
- T0* r368get_copy(T368* C){
- T0* R=NULL;
- R=r368get_rf_with(C,/*X359*/((T0*)/*(IRF4.6first_name*//*(IRF4.6item*/r855item(((T855*)((((T953*)((T953*)((((T398*)((T398*)(r605get_copy(((T605*)(r368class_general())))))))->_names/*8*/))))->_list/*0*/)),1)/*)*//*)*/));
- return R;
- }
- /*No:RUN_CLASS.invariant_assertion*/
- /*No:RUN_CLASS.fz_dot*/
- int fBC364class_general=0;
- T0*oBC364class_general=NULL;
- T0* r368class_general(void){
- if (fBC364class_general==0){
- T0* R=NULL;
- fBC364class_general=1;
- R=r368class_with(((T0*)ms14_473));
- oBC364class_general=R;}
- return oBC364class_general;}
- void r368error(T0* a1,T0* a2){
- r683add_position(a1);
- r683error(((T683*)(oBC364eh)),a2);
- }
- T0* r368base_class(T368* C){
- T0* R=NULL;
- R=X291base_class((((T368*)C))->_current_type/*0*/);
- return R;
- }
- /*No:RUN_CLASS.feature_dictionary*/
- T0* r368get_rf_with(T368* C,T0* a1){
- T0* R=NULL;
- T0* _wbc=NULL;
- T0* _fn2=NULL;
- _wbc=r627base_class(((T627*)(X776start_position(a1))));
- _fn2=r605new_name_of(((T605*)(r368base_class(C))),_wbc,a1);
- /*IF*/if ((_fn2)!=((void*)(a1))) {
- r683add_position(X776start_position(a1));
- R=r368get_or_fatal_error(C,_fn2);
- /*[IRF3.2cancel*//*[IRF3.3clear*/((((T7*)(((T7*)(oBC683explanation)))))->_count)=(0);
- /*]*/
- r51clear(((T51*)(oBC683positions)));
- /*]*/
- }
- else {
- R=r368get_or_fatal_error(C,_fn2);
- }
- /*FI*/return R;
- }
- /*No:RUN_CLASS.us_general*/
- void r368warning(T0* a1,T0* a2){
- r683add_position(a1);
- r683warning(((T683*)(oBC364eh)),a2);
- }
-
-